<?php
/*
 * Đây là kỹ thuật lazy loading trong OOP, được sử dụng để triệu nạp file controller trong từng module
* của zend framework.
* Riêng đối với module default là module mặc định nên trong class controller ta không cần khai báo thêm tên module giống với module admin.
*/
class IndexController extends Zend_Controller_Action{
	
	//Hàm init() là hàm đặc biệt trong cấu trúc ZF, nó sẽ được ZF ưu tiên gọi đầu tiên khi chúng viếng thăm bất cứ controller nào có mặt hàm init.
	public function init(){
		/*		 
			+ Phương pháp cấu hình layout bằng application.ini cho phép ta chỉ thiết lập một lần, sau đó các controller không cần phải thiết lập lại. Nhưng chúng chỉ cố định duy nhất một layout cho tất cả ứng dụng.
			+ Phương pháp cấu hình trực tiếp tuy phải cấu hình trong từng controller nhưng có thể cho ta tùy chọn thay đổi theo chiều hướng multi layout cho từng module hoặc controller mà ta muốn một cách dễ dàng.
		 */
		
		$option=array(
				"layout" => "layout",
				"layoutPath" => APPLICATION_PATH."/layouts/scripts/"
		);
		Zend_Layout::startMvc($option);
		
		$this->view->headTitle("QHOnline - Zend Layout Head Title");
		
		
		/*
		Việc truyền tham số CSS, javascript,…., chúng ta phải sử dụng đường dẫn tương đối. Nghĩa là lấy ra đường dẫn hiện tại của người sử dụng rồi mới tiến hành truy cập vào đường dẫn thư mục của chúng. Trong trường hộp này tôi đặt file CSS trong thư mục public. Vậy một lần nữa ta có thể lấy được nội dung file css từ nó
		*/
		$dir= $this->_request->getBaseUrl ();
		$this->view->headLink()->appendStylesheet($dir.'/public/css/style.css');
		$this->view->headLink()->offsetSetStylesheet(1, $dir.'/public/css/style.css', 'all');
		$this->view->headLink()->prependStylesheet($dir.'/public/css/style.css', 'screen', 'lte IE 8');
		
		
	}
	
	public function indexAction() {
		$data= array(
				'title' => 'Zend Framework',
				'author'=> 'Kenny',
				'date'  => '20-11-2009',
				'website'=> 'www.QHOnline.Info'
		);
		$this->view->info =$data;
		
		$this->getHelper('viewRenderer')->setNoRender();		
			
		echo "chay vao Module default / IndexController / indexAction";
		
		
		//dung multiDb
		$multidb_obj = new Model_Multidb();
		echo "<pre>";
		
		var_dump($multidb_obj->listall());
		echo "</pre>";
		
		
		
		
		
	}
	
	function demoAction(){ //action nay phai dung ham view khac
		$this->view->hello="Hello Zend Framework - QHOnline.Info";
	}
	
	function testAction(){
		$baseurl=$this->_request->getbaseurl();
		var_dump($baseurl);
		$this->view->doctype();
		$this->view->headtitle("QHOnline.Info - Chapter 3: Zend Framework");
		$this->view->headMeta()->appendName("keyword","Zend Framework,Codeigniter,PHP Framework");
		$this->view->headMeta()->offsetSetName("1","description","Khoa hoc PHP Framework tai QHOnline");
		$this->view->headLink()->appendStylesheet($baseurl."/public/css/test.css");
		$this->view->headscript()->appendFile($baseurl."/public/js/test.js","text/javascript");
		$this->view->headscript()->offsetSetFile("1",$baseurl."/public/js/test2.js","text/javascrip");
		
		
		//su dung Zend Youtube
		$youtube  = new Zend_Gdata_YouTube();
		//lay video cua 1 nguoi dung
		$username = 'askmisterduncan';
		$youtube  = new Zend_Gdata_YouTube();
		try {
			$feed = $youtube->getUserUploads($username);
		}
		catch (Exception $ex) {
			echo $ex->getMessage();
			exit;
		}
		
		foreach ($feed as $video) {
			echo '<br/> Video ID: ' . $video->getVideoId();
			echo '<br/> Video Title: ' . $video->getVideoTitle();
			echo '<br/> Video Description: ' . $video->getVideoDescription();
			echo '<br/> Video Duration: ' . $video->getVideoDuration();
			echo '<br/> Video View Count: ' . $video->getVideoViewCount();
			echo '<br/> Video Tags: ';
			echo '<pre>';
			echo print_r($video->getVideoTags());
			echo '</pre>';
			echo '<br/><hr/>';
		}
		
	}
	
	public function captchaAction(){
		$form = new Form_CaptchaImg;
		if($this->_request->isPost()){
			$captcha = $this->_request->getPost('captcha');
			if(Form_Validate_Captcha::isValid($captcha)){
				echo "Success";
			}else{
				echo "You're not human";
			}
		}
		$this->view->form = $form;
		//Đoạn code sau để xóa hình ảnh captcha sau khi xuất ra form
		$mask = APPLICATION_PATH."/../public/img/captcha/*.png";
		array_map("unlink",glob($mask));
	}
	
	//list action dung cache
	public function listAction(){
		
		//Câu lệnh này sẽ truy cập vào file bootstrap.php, lấy ra đối tượng Cachemanager và lấy template tên là dbcache để sử dụng.
		$dbcache=$this->getInvokeArg('bootstrap')->getResource('cachemanager')->getCache('dbcache');
		
		$id='list_cache';
		
		if(!$dbcache->load($id)){
			$muser=new Model_User;
			$data=$muser->listall();
			$dbcache->save($data,$id);
			$this->view->data=$dbcache->load($id);
		}
		$this->view->data=$dbcache->load($id);
	}

}
?>